<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Asigna_arrastre extends MN_Controller {

    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->helper(array('url', 'form'));
        $this->load->library('ion_auth');
        $this->load->library('session');
        $this->load->model('Docente_Model');
        $this->load->model('Periodos_Model');
        $this->load->model('Pensum_Model');
        $this->load->model('Carrera_Model');
        $this->load->model('Ciclos_Model');
        $this->load->model('Reportes_Model');
        $this->load->model('Estudiante_Model');
        $this->load->model('Distributivo_Model');
        $this->load->model('Cursa_Model');
    }

    public function index() {

        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
    }

    public function inicio() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();


        $this->data['periodos'] = $this->Periodos_Model->getListado();
        //$this->data['periodos'] = $this->Periodos_Model->getPeriodoActivo();
        $this->data['carrera'] = $this->Carrera_Model->getListado();

        $periodo = $this->uri->segment(3);
        $ide_car = $this->uri->segment(4);
        $ide_pen = $this->uri->segment(5);
        $codigo_cic = $this->uri->segment(6);
        //$seccion = $this->uri->segment(7);
        //$paralelo = $this->uri->segment(8);

        if (!empty($periodo) && $periodo != -1) {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = $periodo;
        } else {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = -1;
            //$periodo = $this->data['periodos'][0];
        }


        if (!empty($ide_car) && $ide_car != -1) {
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
            $this->data['ide_car'] = $ide_car;
            //$this->data['ide_pen'] = -1;
        } else {
            $this->data['ide_car'] = -1;
        }
        if (!empty($ide_pen) && $ide_pen != -1) {
            $this->data['ciclo'] = $this->Ciclos_Model->getCiclosPensum($ide_pen);
            $this->data['ide_pen'] = $ide_pen;
        } else {
            $this->data['ide_pen'] = -1;
        }
        if (!empty($codigo_cic) && $codigo_cic != -1) {
            //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic);
            $this->data['codigo_cic'] = $codigo_cic;
        } else {
            $this->data['codigo_cic'] = -1;
        }



        if (isset($_POST['btn1'])) {
            //$cod=$this->input->post('ide_pen');

            $carr = $this->Carrera_Model->getDatosCarrera($ide_car);
            $this->data['nom_car'] = $carr[0]['nombre_car'];
            $this->data['ide_lec'] = $periodo['ide_lec'];
        }
        $this->_render('asigna_arrastre/new');
    }

    public function procesar() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();


        $ide_lec = $this->input->post('ide_lec');
        $ide_car = $this->input->post('ide_car');
        $ide_pen = $this->input->post('ide_pen');
        $ide_ciclo = $this->input->post('codigo_cic');
        $seccion = $this->input->post('seccion');
        $paralelo = $this->input->post('paralelo');
        $this->data['ide_lec'] = $ide_lec;
        $this->data['ide_car'] = $ide_car;
        $this->data['ide_pen'] = $ide_pen;
        $this->data['ide_ciclo'] = $ide_ciclo;
        $this->data['seccion'] = $seccion;
        $this->data['paralelo'] = $paralelo;




        if (isset($_POST['listar'])) {
            $seccion = 0;
            $this->data['listar'] = 1;
        }


        $this->data['nom_seccion'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FIN DE SEMANA"));

        $arreglo = array();

        if ($ide_lec > 0 && $ide_car > 0 && $ide_pen > 0 && $ide_ciclo > 0 && $seccion > 0) {
            $arreglo = $this->Reportes_Model->getAlumnosArrastran($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion, $paralelo);
            if (count($arreglo) > 0) {
                $this->data['nombre_car'] = (!empty($arreglo) ? $arreglo[0]['nombre_car'] : "SIN DATOS");
                $this->data['nombre_cic'] = (!empty($arreglo) ? $arreglo[0]['nombre_cic'] : "SIN DATOS");

                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
            }


            $this->data['reporte'] = $arreglo;
            //print_r($arreglo);
            $this->_render('asigna_arrastre/lista1');
        } else { //if ($ide_lec >0 && $ide_car <0 && $ide_pen<0 && $ide_ciclo<0 && $seccion>0) {
            $arreglo = $this->Reportes_Model->getAlumnosArrastran($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion, $paralelo);
            if (count($arreglo) > 0) {
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);


                //echo ($ide_lec.$ide_car.$ide_pen.$ide_ciclo.$seccion);
                if (isset($_POST['listar'])) {
                    $arreglo = $this->orderMultiDimensionalArray($arreglo, 'seccion', false);
                } else {
                    $arreglo = $this->orderMultiDimensionalArray($arreglo, 'nombre_car', false);
                }
            }

            $this->data['reporte'] = $arreglo;
            $this->_render('asigna_arrastre/lista2');
        }


        //$this->_render('rpt_inscrip/lista1');
    }

    public function presentardatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->load->model('Matricula_Model');
        //$this->load->model('Cursa_Model');
        $this->session->unset_userdata('ses_reasigna');
        $id_matr = $this->uri->segment(3);
        $cambio = $this->uri->segment(4);
        //$modo_mat = $this->uri->segment(5);
        $cambio = (empty($cambio) ? 0 : 1);

        $this->data['inscrito'] = $this->Matricula_Model->getDatosMatricula($id_matr);
        $cursa = $this->Cursa_Model->getDatosCursa($id_matr);
        if (empty($modo_mat)) {
            $modo_mat = $this->data['inscrito'][0]['modo_mat'];
        }
        $this->data["lista"] = $this->Periodos_Model->getListado();
        $ide_lec = $this->Periodos_Model->getDatosPeriodo($cursa[0]['periodos_lectivos_ide_lec']);

        $ide_car = $this->Carrera_Model->getDatosCarrera($cursa[0]['ide_car']);
        $ide_pen = $this->Pensum_Model->getDatosPensum($cursa[0]['ide_pen']);
        $ide_ciclo = $this->Ciclos_Model->getDatosCiclo($cursa[0]['ide_cic']);

        $cod_pers = $this->Estudiante_Model->getDatosIdePers($cursa[0]['estudiante_ide_est']);


        if ($cambio == 0) {
            $seccion = $cursa[0]['seccion'];
            $paralelo = $cursa[0]['paralelo'];

            $this->data['materias'] = $this->Cursa_Model->getCursaDistributivo($id_matr);
        } elseif ($cambio == 1 AND $modo_mat == 1) {
            $seccion = $this->uri->segment(5);
            $paralelo = $this->uri->segment(6);

            $this->data['materias'] = $this->Distributivo_Model->getDatosDistributivo($ide_lec[0]['ide_lec'], $ide_car[0]['ide_car'], $ide_pen[0]['ide_pen'], $ide_ciclo[0]['codigo_cic'], $seccion, $paralelo, $ide_mat = null);
            //print_r($this->data['materias']);
        } else {
            $seccion = $this->uri->segment(5);
            $paralelo = $this->uri->segment(6);
            
            $this->data['materias'] = $this->Distributivo_Model->getDatosDistributivo($ide_lec[0]['ide_lec'], $ide_car[0]['ide_car'], $ide_pen[0]['ide_pen'], $ide_ciclo[0]['codigo_cic'], $seccion, $paralelo, $ide_mat = null);
        }

        $this->data['estudiante'] = $this->Estudiante_Model->getDatosEstudiante($cod_pers);
        $this->data['ide_lec'] = $ide_lec[0]['ide_lec'];
        $this->data['ide_car'] = $ide_car[0]['ide_car'];
        $this->data['ide_pen'] = $ide_pen[0]['ide_pen'];
        $this->data['ide_ciclo'] = $ide_ciclo[0]['ide_cic'];
        $this->data['seccion'] = $seccion;

        $this->data['ide_lec_nom'] = $ide_lec[0]['descripcion_lec'];
        $this->data['ide_car_nom'] = $ide_car[0]['nombre_car'];
        $this->data['ide_pen_nom'] = $ide_pen[0]['descripcion_pen'];
        $this->data['ide_ciclo_nom'] = $ide_ciclo[0]['nombre_cic'];

        $this->data['seccion_nom'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FINES DE SEMANA"));
        $this->data['paralelo_nom'] = $paralelo;
        //$this->data['nro_mat'] = $[0][''];

        $this->data['nro_cup'] = $cursa[0]['cupo_cur'];

        $this->data['id_matr'] = $id_matr;
        $this->data['modo_mat'] = $modo_mat;
        $this->data['cambio'] = $cambio;
        //print_r($this->data['inscrito']);


        $this->_render('asigna_arrastre/procesom');
    }

    public function modificadatos() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();

        $this->data['carrera'] = $this->Carrera_Model->getListado();
        $this->load->model('Materia_Model');
        
        
        
        if ($this->session->userdata('ses_reasigna') == FALSE) {
            
            $this->load->model('Matricula_Model');
            

            $ide_per = $this->uri->segment(3);
            $id_matr = $this->uri->segment(4);
            $ide_mat = $this->uri->segment(5);
            $nom_mat=$this->Materia_Model->getDatosMateria($ide_mat);
            //$cursa = $this->Cursa_Model->getDatosCursa($id_matr);

            $ses_reasigna = array(
                'ide_per' => $ide_per, 'id_matr' => $id_matr,
                'ide_mat' => $ide_mat,'nom_mat'=>$nom_mat[0]['nombre_mat']);
            $this->session->set_userdata('ses_reasigna', $ses_reasigna);
            $this->load->model('Matricula_Model');
            //$this->load->model('Cursa_Model');
            $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ide_per);
            $this->data['estudiantes'] = $this->Estudiante_Model->getDatosEstudiante($ide_per);
            $periodo = $this->data['periodos'][0];
            $cursa = $this->Cursa_Model->getDatosCursa($id_matr);
            $this->data['ide_car'] = $cursa[0]['ide_car'];
            $ide_car= $cursa[0]['ide_car'];
            //$this->data['ide_car'] = $cursa[0]['ide_car'];
            $this->data['ide_car'] = $ide_car;
            $this->data['ide_pen'] = $cursa[0]['ide_pen'];
            //$this->data['ide_pen'] = -1;
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($cursa[0]['ide_car']);
            //$this->data['pensum'] = -1;

            $this->data['codigo_cic'] = $cursa[0]['ide_cic'];
            //$this->data['codigo_cic'] = -1;
            $this->data['ciclo'] = $this->Ciclos_Model->getCicloPensumPrimero($cursa[0]['ide_pen']);
            //$this->data['ciclo'] = -1;
            $this->data['seccion'] = $cursa[0]['seccion'];
            //$this->data['seccion'] = -1;
            $this->data['paralelo'] = $cursa[0]['paralelo'];
            $this->data['nom_mat'] = $nom_mat[0]['nombre_mat'];
            //$this->data['paralelo'] = -1;
            
            $this->_render('asigna_arrastre/reasigna');
            
            
        } else {
            $ses_reasigna = $this->session->userdata('ses_reasigna');
            //print_r($ses_reasigna);
            $ide_per = $ses_reasigna['ide_per'];
            $this->data['nom_mat'] = $ses_reasigna['nom_mat'];
            //$ide_pers = $ses_reasigna['ide_pers'];
            $id_matr = $ses_reasigna['id_matr'];
            $ide_car = $this->uri->segment(3);
            $ide_pen = $this->uri->segment(4);
            $codigo_cic = $this->uri->segment(5);
            $seccion = $this->uri->segment(6);
            $paralelo = $this->uri->segment(7);
            //echo $ide_car ."aqui";
            $this->data['periodos'] = $this->Periodos_Model->getDatosPeriodo($ide_per);
            //$this->data['estudiantes'] = $this->Estudiante_Model->getDatosEstudiante($ide_pers);
            $periodo = $this->data['periodos'][0];
            //$ide_car = $this->uri->segment(4);
            if (!empty($ide_car) && $ide_car != -1) {
                $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
                $this->data['ide_car'] = $ide_car;
            } else {
                $this->data['ide_car'] = -1;
            }
            if (!empty($ide_pen) && $ide_pen != -1) {
                $this->data['ciclo'] = $this->Ciclos_Model->getCicloPensum($ide_pen);
                $this->data['ide_pen'] = $ide_pen;
            } else {
                $this->data['ide_pen'] = -1;
            }
            if (!empty($codigo_cic) && $codigo_cic != -1) {
                $this->data['codigo_cic'] = $codigo_cic;
            } else {
                $this->data['codigo_cic'] = -1;
            }

            if (!empty($seccion) && $seccion != -1) {
                //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic, $periodo['ide_lec'], $seccion);
                $this->data['seccion'] = $seccion;
            } else {
                $this->data['seccion'] = -1;
            }

            if (!empty($paralelo) && $paralelo != -1) {
                //$this->load->model('Ciclos_Model');
                //$this->data['docentes'] = $this->Docente_Model->getListado();
                //listarMateriaParaleloSeccionCicloCarreraPeriodo($id_periodo, $id_carrera, $id_ciclo, $seccion,$paralelo)
                $materia=$this->Ciclos_Model->listarMateriaParaleloSeccionCicloCarreraPeriodo($ide_per, $ide_car, $codigo_cic, $seccion, $paralelo);
               
                if (empty($materia)){
                    $num_ciclo=$this->Ciclos_Model->getCodigo_cic($codigo_cic);
                    $materia = $this->Distributivo_Model->getDatosDistributivo($ide_per, $ide_car, $ide_pen, $num_ciclo, $seccion, $paralelo, $ide_mat = null);
                    
                }
                //$this->data['materias'] =$this->Ciclos_Model->listarMateriaParaleloSeccionCicloCarreraPeriodo($ide_per, $ide_car, $codigo_cic, $seccion, $paralelo);
                
                $this->data['materias']=$materia;
                //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic, $periodo['ide_lec'], $seccion, $paralelo);
                $this->data['paralelo'] = $paralelo;
            } else {
                $this->data['paralelo'] = -1;
            }
            $this->data['modo_mat'] = 1;
            //$this->data['opc'] = $opc;
            
            $this->_render('asigna_arrastre/reasigna');

            
            
        }
        



        
    }

    function orderMultiDimensionalArray($toOrderArray, $field, $inverse = false) {
        $position = array();
        $newRow = array();
        foreach ($toOrderArray as $key => $row) {
            $position[$key] = $row[$field];
            $newRow[$key] = $row;
        }
        if ($inverse) {
            arsort($position);
        } else {
            asort($position);
        }
        $returnArray = array();
        foreach ($position as $key => $pos) {
            $returnArray[] = $newRow[$key];
        }
        return $returnArray;
    }

    public function prueba() {
        //$this->verificar_ciclo(1901,1);
    }

    public function verificar_ciclo($id_matr, $ide_cic) {
        $ciclo = array(
            array('ciclo' => 1, 'cant' => 0, 'id' => 0),
            array('ciclo' => 2, 'cant' => 0, 'id' => 0),
            array('ciclo' => 3, 'cant' => 0, 'id' => 0),
            array('ciclo' => 4, 'cant' => 0, 'id' => 0),
            array('ciclo' => 5, 'cant' => 0, 'id' => 0),
            array('ciclo' => 6, 'cant' => 0, 'id' => 0));

        $arreglo = $this->Reportes_Model->getCantidadMateriasCicloPorMatricula($id_matr);
        //print_r($arreglo);
        //foreach($ciclo as $item){
        for ($i = 0; $i < 6; $i++) {
            //echo $item['ciclo'];
            //echo $item['cant'];
            //echo $item['id'];
            $cont = 0;

            foreach ($arreglo as $row) {
                if ($ciclo[$i]['ciclo'] == intval($row['codigo_cic'])) {
                    $cont++;
                    //echo $cont;
                    $ciclo[$i]['cant'] = $cont;
                    $ciclo[$i]['id'] = $row['ide_cic'];
                }
            }
        }
        //echo "<br>".$ide_cic;
        $ciclo = $this->orderMultiDimensionalArray($ciclo, 'cant', TRUE);
        //print_r($ciclo);
        $ide_c = 0;
        if ($ciclo[0]['cant'] > $ciclo[1]['cant']) {
            //echo "<br/>".$ciclo[0]['id'].' - '.$ciclo[0]['ciclo'];
            $ide_c = $ciclo[0]['id'];
        } elseif ($ciclo[0]['cant'] == $ciclo[1]['cant']) {
            //echo $ciclo[0]['ciclo']. $ciclo[1]['ciclo'];
            $ide_c = ($ciclo[0]['ciclo'] > $ciclo[1]['ciclo'] ? $ciclo[0]['id'] : $ciclo[1]['id']);
            //if($ciclo[0]['ciclo']>$ciclo[1]['ciclo']){
            //echo "<br/>".$ciclo[0]['id'].' - '.$ciclo[0]['ciclo'];
            //    $ide_c=$ciclo[0]['id'];
            //}
        }
        //echo $ide_c;
        if ($ide_cic != $ide_c) {
            return FALSE;
        } else {
            return TRUE;
        }
        //print_r($ciclo);
    }
    
    public function grabar() {
        //$this->load->model('Cursa_Model');
        $this->load->model('Arrastre_Model');
        
        $ses_reasigna = $this->session->userdata('ses_reasigna');
        $cursa=$this->Cursa_Model->getCursa_estudiante($ses_reasigna);
        //[ide_per] => 10 [id_matr] => 4221 [ide_mat] => 21
        $datos=explode(".", ($this->input->post('dat_mat')."."));
        //print_r($datos);
            //$materia_ide_mat_arr=explode(".", $datos);
            
        $arrastre=array("ide_cur"=>$cursa[0]['ide_cur'],//
            "ide_car_arr"=>$this->input->post('ide_car'),"ide_pen_arr"=>$this->input->post('ide_pen'),
            "ide_cic_arr"=>$this->input->post('codigo_cic'),"materia_ide_mat_arr"=>$datos[0],
            "docente_ide_doc_arr"=>$datos[1],"seccion_arr"=>$this->input->post('seccion'),
            "paralelo_arr"=>$this->input->post('paralelo'),"estudiante_ide_est"=>$cursa[0]['estudiante_ide_est'],
            "observa_arr"=>"ninguna");
        //print_r($arrastre);
        $this->Arrastre_Model->grabarArrastre($arrastre);
        $this->Cursa_Model->reasig_arrastre($cursa[0]['ide_cur'],1);//reasigno el arraste con el valor de 1
        redirect('asigna_arrastre/presentardatos/'.$ses_reasigna['id_matr'], 'refresh');
        
        

    }
    public function eliminadatos() {
        //$this->load->model('Cursa_Model');
        $this->load->model('Arrastre_Model');
        $ide_arr = $this->uri->segment(3);
        $ide_cur = $this->uri->segment(4);
        $id_matr= $this->uri->segment(5);
        
        $this->Arrastre_Model->EliminarArrastre($ide_arr);
        $this->Cursa_Model->reasig_arrastre($ide_cur,0);//reasigno el arraste con el valor de 1
        $this->data['msj_del']="Se ha eliminado la asignacion del materias por arrastres";
        $this->data['tit_del']="ELIMINACION DE ARRASTRES";
        $this->data['volver']="asigna_arrastre/presentardatos/$id_matr";

        $this->_render('template/msj_error');

        

    }
    
}
